home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
PASCAL
/
0195.ZIP
/
QUEUE.LIB
< prev
next >
Wrap
Text File
|
1984-12-03
|
2KB
|
45 lines
{@@@@@@@@@@@ copyright (C) 1984 by Neil J. Rubenking @@@@@@@@@@@@@@@@@@@@@@@@
The purchaser of these procedures and functions may include them in COMPILED
programs freely, but may not sell or give away the source text.
THIS is a kind of template for a generic QUEUE (First In, First Out).
You probably won`t $INCLUDE it in a program, but it's handy to have
it for reference on disk.
}
type
ListType = ^node;
node = record
AnItem : ItemType;
next : ListType;
end;
{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}
procedure AddItem(ItemToAdd:ItemType; VAR ItemList, EndPointer : ListType);
begin
if ItemList = nil then
begin { You MUST declare the type }
new(ItemList); { "ItemType" in your program. }
ItemList^.AnItem := ItemToAdd; { It can be anything. }
ItemList^.next := nil;
EndPointer := ItemList;
end
else
begin
new(EndPointer^.next);
EndPointer := EndPointer^.next;
EndPointer^.AnItem := ItemToAdd;
EndPointer^.next := nil;
end;
end;
{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@}
procedure DisposeAll(VAR ItemList : ListType); { A queue or other linked }
var { continues to take up space }
tempPointer : ListType; { in memory until you dispose }
begin { of it. You have to get rid }
while ItemList <> nil do { of it carefully, without }
begin { losing track of it! }
tempPointer := ItemList;
ItemList := ItemList^.next;
dispose(tempPointer);
end;
end;